iT邦幫忙

2021 iThome 鐵人賽

DAY 6
4
自我挑戰組

新手全端工程師的職場成長歷程系列 第 6

Day06:絕對要有的Git觀念與習慣

  • 分享至 

  • xImage
  •  

一、前言

  先前有提到,我在轉職後、進到現職公司前,其實還有錄取過另外一份PHP後端工程師之職缺,因為轉職時在培訓營學習過Ruby這個後端語言,所以在技術考時,算是回答方向還可以,有幸被錄取。

  不幸的是,我入職後發現全公司都沒有人會使用Git!!!太驚人了啊~這麼好用的東西到底為何不使用呢?我記得我才到職一週時間,每天在辦公室裡,大家都是埋頭寫扣,最常聽到的對話就是「有人剛剛刪掉我的某某某段程式碼嗎?」

  後來詢問之後才了解,原來我面試時詢問公司是否有使用Git做版控時,主管說有,其實是沒有的...全公司前後端分離,程式碼的交換是使用共用資料夾做傳輸...所以就會有掉程式碼的問題常發生,而大家也都沒有備份的習慣,導致專案開發常常有耗時之問題!

  當然除了沒有版控,其實還有其他問題,我只做一週就離職了。從中得到最寶貴的經驗,我覺得是建議剛要踏入這行的新鮮人,可以多注意版本控制這件事,不要說是協作,你一個人在家開發side project時也可以用啊!隨時隨地都可以練習的~

二、Git是什麼?

  Git像一個檔案系統,直接在本機上取得資料,不必連線到主機端取得資料。 每個開發者都可有全部開發歷史的本地副本,changes從這種本地repository複製給其他開發者。這些changes作為新增的開發分支被匯入,可以與本地開發分支合併。(本段落取用自維基百科之定義)

  上面那段我覺得可能是因為翻譯關係較為饒舌難懂,我覺得較簡單的理解是可以把Git當作是一個版本開發工具,你可以隨時儲存進度、保留歷史開發內容、為每一階段開發做有效命名、以及傳送至有效之server作為團隊合作之工具。

  以下介紹我覺得入職後最常用的幾個,如果想要從頭學習或瞭解一些冷知識的話,推薦可以看龍哥的這本書<<為你自己學 Git>>,可以依自己習慣選擇電子版或實體書籍(我個人還是喜歡實體書籍)。但入職前將下列指令熟用(稍微列幾個,但實際上也要看公司的習慣),真的是很基本的事情!

項次 Git指令 用處
1 git add . 我通常都是一個小進度告一段落就會使用,然後搭配項次2的指令作為此進度之命名
2 git commit -m "commit message" commit message放的就是你對目前這個儲存的時機點所完成的進度,個人推薦全英文寫上簡單易懂之小句子,可順手培養英文單字熟練度。
3 git merge branch-name 合併某個分支。
4 git push origin branch-name 就是推到某個遠端的分支做同步的意思,有可能是feature...、develop等等。
5 git cherry-pick commit-SHA-1 - commit-SHA-1是指你想要的那個節點。- 主要是用來處理你忘記開分支出去,就開始撰寫程式碼的狀況。可以參考這個章節,有更詳細之理解。

三、Git觀念與習慣

  Git好用之處這邊不加以贅述,遠端共同協作更是現在身為工程師必備之技能。那擁有好的Git觀念,我想是要靠自己不斷練習使用、常與團隊溝通合作,自然就能累積而成。這邊介紹一下我個人堅持的小習慣,但我現職的全公司都不愛用XDD我不懂為何...

項次 主題 內容
1 使用全指令介面 - 好處是可以不用切換輸入法、增加英文字彙量、有很多指令可以活用、假裝很忙? - 壞處目前想不到,因為我覺得學習曲線真的不高。
2 分支命名 - 第一當然是尊重團隊習慣。 - 第二則是留意分支主題是否易懂。
3 commit訊息 - 盡量還是全英文書寫。 - 有需要的話可以進到習慣介面輸入markdown語法詳列。 - 保持習慣一個段落就commit一次,要補救或確認每日進度時很好用。

四、Git Server又是什麼?

  網路上有點難查到名詞定義,大概意思就是你在本地有的那些分支可以更新(push)到 遠端共同協作的網站 ,而你一直在打的那些Git指令是工具。

  最知名的Git Server當然就是GitHub啦~聽說工程師宅宅們甚至會在上面交友,以程式碼會友~我個人等級不到還沒體驗過...但是值得一提的是它真的提供了很多服務,像是你的個人首頁看放介紹,你可以創建與你GitHub帳號名稱相同的GitHub Page,大家如果有興趣可以多研究一下~(後面篇幅我也會介紹如何使用GitHub Page)

  當然,有的公司也會自架一個Git Server,我現職的公司就是這樣的。入職後,公司會幫我們創建帳號,個人覺得和GitHub幾乎相同,只是那些綠點點不會長在自己的GitHub紀錄裡而已,但我有發現一個奇妙的點,公司自架的 Git Server 綠點點是記錄你的當日 push 次數,而 GitHub 則是記錄你當日 commit 次數,這點倒是不明白為何?

五、結論與自我鼓勵

  總結當然首要提到的是,一定要進到一間有版控的公司啊!雖然也有很多公司長年沒有使用仍然可以存活,但我想背後應該有很多沒必要的苦工...次要則是想分享近期我公司同事轉傳給我們的「Git Commit Message寫法」,這是看公司協作和個人習慣,大家可以當作參考即可。

  自我鼓勵的部分,當然是覺得佩服自己中秋連假竟然可以成功不斷賽,雖然每天行程很滿,仍然在固定時間點靜下來打文章,因為聽說人類連續21天就能養成一個習慣,我是一個非常容易半途而廢的人(因為有點懶惰),所以需要常給自己鼓勵才有動力!各位鐵人們一起加油吧~


上一篇
Day05:工程師必學的 Markdown 筆記語法
下一篇
Day07:部門與工程團隊間協作的技巧(上)
系列文
新手全端工程師的職場成長歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
kk00915
iT邦新手 4 級 ‧ 2021-09-20 13:37:08

我也要開始學git了~

我要留言

立即登入留言